package com.esun.service.service;

import com.esun.api.request.DatabaseLogRequestDto;
import com.esun.api.request.OperationLogRequestDto;
import com.esun.api.response.DatabaseLogResponseDto;
import com.esun.api.response.OperationLogResponseDto;

import java.util.List;

import com.github.pagehelper.PageInfo;
import org.apache.poi.ss.usermodel.Workbook;

/**
 * (OperationLog)表服务接口
 *
 * @author baron.wubo
 * @since 2021-10-13 13:28:35
 */
public interface OperationLogService {

    /**
     * 按实体类分页查询多条数据
     *
     * @param requestDto    请求实体
     * @param sortParamList 排序参数列表
     * @param sortList      排序列表
     * @return 对象列表
     */
    PageInfo<OperationLogResponseDto> getOperationLogByPage(OperationLogRequestDto requestDto);

    /**
     * 查询日志未解决总数
     * @return
     */
    OperationLogResponseDto getLogErrorTotal();
    /**
     * 批量新增数据
     *
     * @param requestDtoList 实例对象列表
     * @return 实例对象列表
     */
    List<OperationLogResponseDto> addOperationLog(List<OperationLogRequestDto> requestDtoList);


    /**
     * 批量修改数据
     *
     * @param requestDtoList 请求实体列表
     * @return 实例对象列表
     */
    List<OperationLogResponseDto> updateOperationLog(List<OperationLogRequestDto> requestDtoList);


    /**
     * 通过实体类批量删除数据
     *
     * @param requestDtoList 请求实体列表
     * @return 实例对象列表
     */
    List<OperationLogResponseDto> deleteOperationLog(List<OperationLogRequestDto> requestDtoList);

    /**
     * 通过Excel导入DataType
     *
     * @param workbook 解析后的Excel文件
     * @return 实列列表
     */
    List<OperationLogResponseDto> importOperationLog(Workbook workbook);

    /**
     * 通过Excel导入DataType
     *
     * @param requestDto DataType请求实体
     */
    void exportOperationLog(OperationLogRequestDto requestDto);

    /**
     * 下载模板
     *
     * @param path 模板路径
     */
    void downloadTemplate(String path);


}
